CREATE TABLE [dbo].[tb_Antecedentes]
(
[idAntecedente] [int] NOT NULL IDENTITY(1, 1),
[Descripcion] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Rubro] [int] NULL,
[Tipo] [int] NULL,
[Fecha] [datetime] NULL,
[Valor] [float] NULL,
[Parametro] [float] NULL,
[GrupoIncumbencias] [int] NULL,
[Agente] [int] NULL,
[FechaDeAlta9] [datetime] NULL CONSTRAINT [DF_tb_Antecedentes_FechaDeAlta9] DEFAULT (getdate()),
[FechaPresentacion] [datetime] NULL
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[AsignarFechaPresentacionDefault] ON [dbo].[tb_Antecedentes] 
FOR INSERT, UPDATE
AS


BEGIN

SET NOCOUNT ON

DECLARE @FechaPresentacion as datetime
declare @id as int
declare @idAntecedenteAudit int


SELECT @FechaPresentacion = FechaPresentacion,@id=idantecedente  FROM INSERTED

IF (@@ROWCOUNT=1) 
 BEGIN
    if @FechaPresentacion IS NULL select @FechaPresentacion= dbo.FECHA_PRESENTACION_DEFAULT ()
    update tb_antecedentes set FechaPresentacion = @FechaPresentacion where idantecedente=@id
    /*borra el registro duplicado en la tabla tb_AntecedentesAudit*/
    select @idAntecedenteAudit=max(idAntecedenteAudit) FROM  dbo.tb_AntecedentesAudit
    delete dbo.tb_AntecedentesAudit where idAntecedenteAudit=@idAntecedenteAudit
 END

end
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create Trigger dbo.AuditDEL_tb_antecedentes on [dbo].[tb_Antecedentes] FOR DELETE as  DECLARE @ID AS BIGINT  DECLARE @idAntecedente_ANT AS int  DECLARE @idAntecedente_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,idAntecedente FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @idAntecedente_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @idAntecedente_DES=(SELECT idAntecedente from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','idAntecedente',CAST(@idAntecedente_ANT AS varchar(200)),CAST(@idAntecedente_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @idAntecedente_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Descripcion_ANT AS varchar(255)  DECLARE @Descripcion_DES AS varchar(255)  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,Descripcion FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Descripcion_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Descripcion_DES=(SELECT Descripcion from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','Descripcion',CAST(@Descripcion_ANT AS varchar(200)),CAST(@Descripcion_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Descripcion_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Rubro_ANT AS int  DECLARE @Rubro_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,Rubro FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Rubro_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Rubro_DES=(SELECT Rubro from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','Rubro',CAST(@Rubro_ANT AS varchar(200)),CAST(@Rubro_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Rubro_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Tipo_ANT AS int  DECLARE @Tipo_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,Tipo FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Tipo_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Tipo_DES=(SELECT Tipo from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','Tipo',CAST(@Tipo_ANT AS varchar(200)),CAST(@Tipo_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Tipo_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Fecha_ANT AS datetime  DECLARE @Fecha_DES AS datetime  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,Fecha FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Fecha_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Fecha_DES=(SELECT Fecha from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','Fecha',CAST(@Fecha_ANT AS varchar(200)),CAST(@Fecha_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Fecha_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Valor_ANT AS float  DECLARE @Valor_DES AS float  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,Valor FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Valor_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Valor_DES=(SELECT Valor from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','Valor',CAST(@Valor_ANT AS varchar(200)),CAST(@Valor_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Valor_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Parametro_ANT AS float  DECLARE @Parametro_DES AS float  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,Parametro FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Parametro_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Parametro_DES=(SELECT Parametro from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','Parametro',CAST(@Parametro_ANT AS varchar(200)),CAST(@Parametro_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Parametro_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @GrupoIncumbencias_ANT AS int  DECLARE @GrupoIncumbencias_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,GrupoIncumbencias FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @GrupoIncumbencias_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @GrupoIncumbencias_DES=(SELECT GrupoIncumbencias from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','GrupoIncumbencias',CAST(@GrupoIncumbencias_ANT AS varchar(200)),CAST(@GrupoIncumbencias_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @GrupoIncumbencias_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @Agente_ANT AS int  DECLARE @Agente_DES AS int  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,Agente FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @Agente_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @Agente_DES=(SELECT Agente from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','Agente',CAST(@Agente_ANT AS varchar(200)),CAST(@Agente_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @Agente_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @FechaDeAlta9_ANT AS datetime  DECLARE @FechaDeAlta9_DES AS datetime  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,FechaDeAlta9 FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @FechaDeAlta9_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @FechaDeAlta9_DES=(SELECT FechaDeAlta9 from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','FechaDeAlta9',CAST(@FechaDeAlta9_ANT AS varchar(200)),CAST(@FechaDeAlta9_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @FechaDeAlta9_ANT END  CLOSE CUR_D DEALLOCATE CUR_D  DECLARE @FechaPresentacion_ANT AS datetime  DECLARE @FechaPresentacion_DES AS datetime  DECLARE CUR_D CURSOR FOR SELECT idAntecedente ,FechaPresentacion FROM DELETED OPEN CUR_D  FETCH NEXT FROM CUR_D INTO @ID, @FechaPresentacion_ANT  WHILE @@FETCH_STATUS=0 BEGIN  SET @FechaPresentacion_DES=(SELECT FechaPresentacion from tb_antecedentes WHERE idAntecedente = @ID)  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('D','tb_antecedentes',@ID,'idAntecedente','FechaPresentacion',CAST(@FechaPresentacion_ANT AS varchar(200)),CAST(@FechaPresentacion_DES AS varchar(200)),GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_D INTO @ID, @FechaPresentacion_ANT END  CLOSE CUR_D DEALLOCATE CUR_D         
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create Trigger dbo.AuditINS_tb_antecedentes on [dbo].[tb_Antecedentes] FOR INSERT as  DECLARE @ID AS BIGINT  DECLARE CUR_I CURSOR FOR SELECT idAntecedente  FROM INSERTED OPEN CUR_I  FETCH NEXT FROM CUR_I	INTO @ID WHILE @@FETCH_STATUS=0 BEGIN  INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES 
	('I','tb_antecedentes',@ID,'idAntecedente','*****','*****','*****',GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR_I INTO @ID END  CLOSE CUR_I DEALLOCATE CUR_I 
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
create Trigger dbo.AuditUPD_tb_antecedentes on [dbo].[tb_Antecedentes] FOR UPDATE as DECLARE @A AS varchar(200) DECLARE @D AS varchar(200) DECLARE @AUX1 AS varchar(200) DECLARE @AUX2 AS varchar(200) DECLARE @ID AS BIGINT  IF UPDATE(Descripcion) BEGIN DECLARE @Descripcion varchar(255)  DECLARE CUR CURSOR FOR SELECT idAntecedente,Descripcion FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Descripcion WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Descripcion AS varchar(200)) SET @D=CAST((SELECT Descripcion FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','Descripcion',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Descripcion END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Rubro) BEGIN DECLARE @Rubro int DECLARE CUR CURSOR FOR SELECT idAntecedente,Rubro FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Rubro WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Rubro AS varchar(200)) SET @D=CAST((SELECT Rubro FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','Rubro',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Rubro END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Tipo) BEGIN DECLARE @Tipo int DECLARE CUR CURSOR FOR SELECT idAntecedente,Tipo FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Tipo WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Tipo AS varchar(200)) SET @D=CAST((SELECT Tipo FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','Tipo',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Tipo END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Fecha) BEGIN DECLARE @Fecha datetime DECLARE CUR CURSOR FOR SELECT idAntecedente,Fecha FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Fecha WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Fecha AS varchar(200)) SET @D=CAST((SELECT Fecha FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','Fecha',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Fecha END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Valor) BEGIN DECLARE @Valor float DECLARE CUR CURSOR FOR SELECT idAntecedente,Valor FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Valor WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Valor AS varchar(200)) SET @D=CAST((SELECT Valor FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','Valor',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Valor END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Parametro) BEGIN DECLARE @Parametro float DECLARE CUR CURSOR FOR SELECT idAntecedente,Parametro FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Parametro WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Parametro AS varchar(200)) SET @D=CAST((SELECT Parametro FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','Parametro',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Parametro END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(GrupoIncumbencias) BEGIN DECLARE @GrupoIncumbencias int DECLARE CUR CURSOR FOR SELECT idAntecedente,GrupoIncumbencias FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@GrupoIncumbencias WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@GrupoIncumbencias AS varchar(200)) SET @D=CAST((SELECT GrupoIncumbencias FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','GrupoIncumbencias',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @GrupoIncumbencias END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(Agente) BEGIN DECLARE @Agente int DECLARE CUR CURSOR FOR SELECT idAntecedente,Agente FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@Agente WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@Agente AS varchar(200)) SET @D=CAST((SELECT Agente FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','Agente',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @Agente END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(FechaDeAlta9) BEGIN DECLARE @FechaDeAlta9 datetime DECLARE CUR CURSOR FOR SELECT idAntecedente,FechaDeAlta9 FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@FechaDeAlta9 WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@FechaDeAlta9 AS varchar(200)) SET @D=CAST((SELECT FechaDeAlta9 FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','FechaDeAlta9',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @FechaDeAlta9 END  CLOSE CUR DEALLOCATE CUR END  IF UPDATE(FechaPresentacion) BEGIN DECLARE @FechaPresentacion datetime DECLARE CUR CURSOR FOR SELECT idAntecedente,FechaPresentacion FROM DELETED OPEN CUR FETCH NEXT FROM CUR INTO @ID,@FechaPresentacion WHILE @@FETCH_STATUS=0 BEGIN  SET @A=CAST(@FechaPresentacion AS varchar(200)) SET @D=CAST((SELECT FechaPresentacion FROM tb_antecedentes WHERE idAntecedente=@ID) AS varchar(200))  SET @AUX1= ISNULL(@A,'0')  SET @AUX2= ISNULL(@D,'0')  IF @AUX1<> @AUX2 INSERT INTO TB_SUCESOS (ACCION,TABLA,PK_ID,PK_nombre,NOMB_CAMPO_AUDIT,ANTES,DESPUES,FECHASUCESO,BDUSER,SYSUSER) VALUES ('U','tb_antecedentes',@ID,'idAntecedente','FechaPresentacion',@A,@D,GETDATE(),CURRENT_USER,SYSTEM_USER) FETCH NEXT FROM CUR INTO @ID, @FechaPresentacion END  CLOSE CUR DEALLOCATE CUR END         
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[requiereparam_antecedente] ON [dbo].[tb_Antecedentes]
FOR  INSERT,UPDATE
AS
BEGIN
SET NOCOUNT ON
 DECLARE @reqtipo varchar(1)
 DECLARE @reqfecha varchar(1)
 DECLARE @reqvalor varchar(1)
 DECLARE @reqparametro varchar(1)


SELECT * FROM INSERTED
IF (@@ROWCOUNT=1) 
 BEGIN
   SELECT @reqvalor = r.requierevalor, @reqfecha = r.RequiereFecha, @reqtipo = r.requieretipo, @reqparametro = r.requiereparametro FROM tb_rubrosantecedentes r where r.idrubro=(SELECT rubro FROM inserted)
    if @reqtipo='S' and  (SELECT tipo from inserted) IS NULL
         BEGIN
	RAISERROR('Debe completar el campo TIPO para este antecedente !!!' , 16, 1)
	ROLLBACK TRANSACTION
        END
   ELSE
   if (@reqfecha='S') and  (SELECT fecha from inserted) IS NULL
       BEGIN
	RAISERROR('Debe completar el campo FECHA  para este antecedente !!!' , 16, 1)
	ROLLBACK TRANSACTION
        END
    ELSE
   if @reqvalor='S' and  (SELECT valor from inserted) IS NULL
   BEGIN
	 RAISERROR('Debe completar el campo VALOR  para este antecedente !!!' , 16, 1)
	ROLLBACK TRANSACTION
   END
  ELSE
    if @reqparametro='S' and  (SELECT parametro from inserted) IS NULL
          BEGIN
	RAISERROR('Debe completar el campo PARAMETRO para este antecedente !!!' , 16, 1)
	ROLLBACK TRANSACTION
        END
 END

END
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE TRIGGER [dbo].[tri_AntecedentesAudit] 
on [dbo].[tb_Antecedentes] for insert,update,delete as
DECLARE @OPERACION varchar(50)

IF EXISTS (SELECT * FROM INSERTED)
BEGIN
    IF EXISTS (SELECT * FROM DELETED)
    BEGIN
        --UPDATE
        SET @OPERACION='UPDATE'
    END
    ELSE
    BEGIN
        --INSERT
        SET @OPERACION='INSERT'
    END
    
    --handle insert or update data
 insert into tb_AntecedentesAudit(idantecedente,descripcion,rubro,tipo,fecha,valor,
                                             parametro,grupoincumbencias,agente,fechadealta9,
										     fechapresentacion,operacion,fechaoperacion)
                                   SELECT  idantecedente,descripcion,rubro,tipo,fecha,valor,
                                             parametro,grupoincumbencias,agente,fechadealta9,
										     fechapresentacion,@OPERACION,getdate() FROM inserted 

END
ELSE IF EXISTS(SELECT * FROM DELETED)
BEGIN
    --DELETE
    SET @OPERACION='DELETE'
      insert into tb_AntecedentesAudit(idantecedente,descripcion,rubro,tipo,fecha,valor,
                                             parametro,grupoincumbencias,agente,fechadealta9,
										     fechapresentacion,operacion,fechaoperacion)
                                   SELECT  idantecedente,descripcion,rubro,tipo,fecha,valor,
                                             parametro,grupoincumbencias,agente,fechadealta9,
										     fechapresentacion,@OPERACION,getdate() FROM deleted
    
    

END


GO
ALTER TABLE [dbo].[tb_Antecedentes] ADD CONSTRAINT [PK_tb_Antecedentes] PRIMARY KEY CLUSTERED  ([idAntecedente]) WITH (FILLFACTOR=90) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [idxAntecedentesAgentes] ON [dbo].[tb_Antecedentes] ([Agente]) WITH (FILLFACTOR=90) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tb_Antecedentes] WITH NOCHECK ADD CONSTRAINT [FK_tb_Antecedentes_tb_Agentes] FOREIGN KEY ([Agente]) REFERENCES [dbo].[tb_Agentes] ([idAgente])
GO
ALTER TABLE [dbo].[tb_Antecedentes] WITH NOCHECK ADD CONSTRAINT [FK_tb_Antecedentes_tb_GruposDeIncumbencias] FOREIGN KEY ([GrupoIncumbencias]) REFERENCES [dbo].[tb_GruposDeIncumbencias] ([idGrupoIncumbencia])
GO
ALTER TABLE [dbo].[tb_Antecedentes] WITH NOCHECK ADD CONSTRAINT [FK_tb_Antecedentes_tb_RubrosAntecedentes] FOREIGN KEY ([Rubro]) REFERENCES [dbo].[tb_RubrosAntecedentes] ([idRubro])
GO
ALTER TABLE [dbo].[tb_Antecedentes] WITH NOCHECK ADD CONSTRAINT [FK_tb_Antecedentes_tb_TiposAntecedentes] FOREIGN KEY ([Tipo]) REFERENCES [dbo].[tb_TiposAntecedentes] ([idTipoAntecedente])
GO
